package br.unifor.cg.formas;


/**
 * Classe primitiva que representa um Ponto
 * 
 */
public class Ponto implements Comparable<Ponto> {

	protected int x;
	protected int y;

	public Ponto(int x, int y) {
		this.x = x;
		this.y = y;
	}

	public int getX() {
		return this.x;
	}

	public int getY() {
		return this.y;
	}

	public void setX(int x) {
		this.x = x;
	}

	public void setY(int y) {
		this.y = y;
	}

	@Override
	public int compareTo(Ponto ponto) {
		if (this.getX() < ponto.getX()) {
			return -1;
		}else if (this.getX() == ponto.getX()) {
			return 0;
		}

		return 1;
	}
	
	public int compareTo2(Ponto ponto) {
		if (this.getY() < ponto.getY()) {
			return -1;
		}else if (this.getY() == ponto.getY()) {
			return 0;
		}

		return 1;
	}
	
    /**
     * Meotodo que calcula a dist ncia de um ponto at  o ponto P
     * @param p
     * @return o valor (inteiro) da dist ncia entre os dois pontos
     */
    public int distancia(Ponto p){
            return (int) Math.sqrt(Math.pow(this.x - p.getX(), 2) + Math.pow(this.y - p.getY(), 2));
    }

}
